from sys import flags

s = 0
'''
菱形
   *
  ***
 *****
*******
 *****
  ***
   *
通过观察可以看出，菱形因为对称，所以都是由奇数行构成的
 且一个菱形实际是由1个等腰三角形上下翻转构成
 前4行符合等腰三角形，所有特征，后三行用倒等腰三角形拼接
 一共7行：
 1-4行：
 空格和行数关系:1行3空，2行2空，3行1空，4行0空  用range表示则为range(1,4)、range(1,3)、range(1,2)=>range(1,5-i)
 *号和行数关系：1行1星，2行3星，3行5星，4行7星  用range表示则为range(1,2)、range(1,4)、range(1,6)、range(1,8)=>range(1,2*i)
 
 5-7行：
 空格和行数关系:5行1空，6行2空，7行3空  用range表示则为range(1,2)、range(1,3)、range(1,4)=>range(1,i-3)
 *号和行数关系：5行5星，6行3星，7行1星  用range表示则为rang(1,i-4 6)、range(1,4)、range(1,2)=>range(1,8-2*(i-4))
'''

while True:
    row = eval(input('请输入菱形的行数'))
    if row % 2 == 0:
        print('请输入奇数行')
    else:
        break
top_row = (row + 1) // 2

for i in range(1, row + 1):
    if i <= top_row:
        for j in range(1, (top_row + 1 - i)):
            print(' ', end='')
        for j in range(1, 2 * i):
            print('*', end='')
    else:
        for j in range(1, i - top_row + 1):
            print(' ', end='')
        # for j in range(1, row + 1 - 2 * (i - top_row)): # 通项公式：行数99+公差2-2行
        for j in range(1, 2 * row + 2 - 2 * i):  # 通项公式：行数99+公差2-2行
            print('*', end='')

    print()

# for i in range(1, 8):
#     if i <= 4:
#         for j in range(1, 5 - i):
#             print(' ', end='')
#         for j in range(1, 2 * i):
#             print('*', end='')
#     else:
#         for j in range(1, i - 3):
#             print(' ', end='')
#         for j in range(1, 8 - 2 * (i - 4)):
#             print('*', end='')
#
#     print()
